home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / t3_1 / doc.lha / documentation / manual / preface.mss < prev    next >
Text File  |  1987-06-30  |  7KB  |  212 lines

  1. @part[PREFACE, Root "TMAN.MSS"]         @comment{ -*-System:TMAN-*-}
  2.  
  3.  
  4. @XPrefaceSection[Preface]
  5.  
  6. This manual describes @tau[], a programming language being developed at the
  7. Yale University Computer Science Department@Cite[Rees82], and its
  8. current implementations.  It is a reference manual, intended to define
  9. the language and to describe the general direction of its development.
  10. It is @i[not] intended as an introduction or a tutorial.
  11.  
  12. The bulk of this document describes @tau[] as a programming language.
  13. However, chapters @ref[Program Chapter],
  14. @ref[User chapter],
  15. and @ref[Debugging Chapter] describe pragmatic features which are
  16. specific to the current implementations.  To help underscore the
  17. distinction between language and implementation, the implementations
  18. are referred to not as
  19. @i[@tau[]] but as @i[@timp[]].
  20.  
  21. The reader is expected to have some programming experience; the reader
  22. may also find a knowledge of Lisp helpful, although @tau[] is different
  23. enough from Lisp that prior experience with Lisp might actually be
  24. a hindrance.
  25.  
  26. Chapter @ref[FutureChapter] describes ways in which
  27. the language is deficient and directions in which it is likely to grow.
  28. Also, the implementations are not faithful to the language definition presented
  29. in the manual; section @ref[BugsSection] catalogs known deviations.
  30.  
  31. Please send questions and comments about the language, this manual,
  32. or the various implementations of the system, via ARPAnet mail to
  33. Rees@@Yale.ARPA, Usenet mail to ...decvax!yale-comix!rees, or via U.S.
  34. Mail to
  35.  
  36. @begin[display]
  37. Jonathan Rees
  38. Department of Computer Science
  39. Yale University
  40. P.O. Box 2158 Yale Station
  41. New Haven, Connecticut 06520
  42. Telephone (203) 432-4666
  43. @end[display]
  44.  
  45. Announcements of interest to @Tau[] users are regularly broadcast
  46. via Arpanet and Usenet electronic mail to the mailing list
  47. T-Users@@Yale.ARPA; send mail to T-Users-Request@@Yale.ARPA if you
  48. want to be added to (or removed from) this list.  Send reports
  49. about errors in the manual or implementations to T-Bugs@@Yale.ARPA.
  50.  
  51.  
  52.  
  53. James R. Meehan's current address is:
  54. @begin[display]
  55. Cognitive Systems, Inc.
  56. 234 Church St.
  57. New Haven, Connecticut 06510
  58. @end[display]
  59.  
  60. The @Tau[] project has been funded exclusively by the Computing Facility
  61. of the Yale Computer Science Department.
  62.  
  63. TOPS-20, VMS, and VAX are trademarks of Digital Equipment Corporation.
  64. Domain and Aegis are trademarks of Apollo Computer, Inc.  UNIX is a
  65. trademark of Bell Laboratories.
  66.  
  67.  
  68. @XPrefaceSection[Notes on this edition]
  69.  
  70. The fourth edition includes, among others, the following additions
  71. and changes, many of which correspond to new features in @Timp[] version
  72. 2.7:
  73. @itemize[
  74.     New procedures:
  75.     bitwise logical operators,
  76.     @tc[MAKE-LOCALE], @tc[MAKE-EMPTY-LOCALE], @tc[LOCALE?]
  77.     @tc[*VALUE],
  78.     @tc[*DEFINE],
  79.     @tc[*LSET],
  80.     @tc[CHAR->STRING],
  81.     @tc[ASSERT],
  82.     @tc[SYNTAX-ERROR],
  83.     @tc[READ-ERROR],
  84.     @tc[PROJ1] et al.,
  85.     @tc[OBJECT-HASH],
  86.     @tc[OBJECT-UNHASH],
  87.     @tc[WALK-POPULATION],
  88.     @tc[MAKE-LIST-READER],
  89.     @tc[MAKE-READ-TABLE],
  90.     @tc[MACRO-EXPANDER?],
  91.     @tc[INVOKE-MACRO-EXPANDER],
  92.     @tc[OBJECT-FILE?],
  93.     @tc[OBJECT-FILE-STREAM?],
  94.     @tc[TC-SYNTAX-TABLE],
  95.     @tc[TC-MACRO-DEFINITION-ENV],
  96.     @tc[WRITE-LINE],
  97.     @tc[WRITE-SPACES],
  98.     @tc[MAKE-BROADCAST-STREAM].
  99.  
  100.     New special forms: @tc[IMPORT], @tc[MODIFY],
  101.     @tc[DEFINE-LOCAL-SYNTAX], @tc[MACRO-EXPANDER],
  102.     @tc[COMMENT], @tc[IGNORE], @tc[IGNORABLE].
  103.  
  104.     New character names (@tc[LEFT-PAREN] and others).
  105.  
  106.     Escape character syntax explained.
  107.  
  108.     Sample implementation of @tc[DELAY] and @tc[FORCE] provided.
  109.  
  110.     Name changes: @tc[*THE-USER-ENV*] is now called @tc[*SCRATCH-ENV*];
  111.     @tc[*THE-BASE-ENV*] is @tc[*STANDARD-ENV*];
  112.     @tc[DEFINE-MACRO] is @tc[DEFINE-SYNTAX];
  113.     @tc[GEN-ID] is @tc[GENERATE-SYMBOL];
  114.     @tc[SYMBOLCONC] is @tc[CONCATENATE-SYMBOL].
  115.  
  116.     Features withdrawn: @tc[FLOOR], @tc[CEILING],
  117.     @tc[ENV-LOOKUP],
  118.     @tc[CONS-FROM-FREELIST],
  119.     @tc[RETURN-TO-FREELIST],
  120.     @tc[SET-DELIMITED-LIST-SYNTAX-IN-TABLE],
  121.     dispatch read macros.
  122. ]
  123.  
  124. This document is still far from finished.  Future work required
  125. includes the following projects.
  126.  
  127. @begin[itemize]
  128. The preface ought to have a paragraph or two describing the organization
  129. of the manual.
  130.  
  131. The @qu"language overview" and @qu"language principles" sections need
  132. to be expanded.
  133. There should be a description of the memory model of objects,
  134. in which objects are modeled by pointers into memory.
  135.  
  136. The form of procedure and special form description should be explained.
  137.  
  138. The section on types needs expansion and examples.
  139.  
  140. Tail recursion should be explained.
  141.  
  142. @tc[MAKE-ECHO-STREAM] should be described.
  143.  
  144. The external syntax of numbers should be described.  Chapter
  145. @ref{Syntax Chapter} needs to give more detail.
  146.  
  147. Need to document @tc[HANDLER] so that people know what to set a structure
  148. handler to.  Need to describe keyword clauses in @tc[OBJECT] syntax.
  149.  
  150. There should be examples of the use of @tc[JOIN] in implementing type
  151. hierarchies and heterarchies.
  152.  
  153. The introduction to the streams chapter needs work.
  154. Also, stream positions should be documented and implemented.
  155.  
  156. There should be a section giving a brief description of how the
  157. implementation works at the machine level.  A full description should be
  158. relegated to an independent document, which should be written.
  159.  
  160. Need to discuss the VM system and reorganize the presentation of the user
  161. interface.  Many more remarks on error handling and debugging are in
  162. order.
  163. @end[itemize]
  164.  
  165. @XPrefaceSection[Acknowledgements]
  166.  
  167. The authors wish to thank Kent Pitman for his continuing assistance
  168. in making @tau[] true.
  169.  
  170. Gerry Sussman has provided essential guidance and inspiration.
  171.  
  172. Guy Steele wrote most of the compiler we're using, and has otherwise
  173. been a strong influence, originating much of the project's design
  174. philosophy and shaping and inspiring many of its features.
  175.  
  176. This document borrows from the @i[Lisp Machine Manual] @cite[WEINREB81]
  177. and the @i[Common Lisp Reference Manual] @cite[STEELE81COM].
  178. We are grateful to their authors.
  179.  
  180. We wish to acknowledge the influence and valuable advice provided
  181. during the design process by the following people at Yale, MIT, and
  182. elsewhere:  Alan Bawden, Richard Bryan,
  183. David Byrne,
  184. George Carrette, William
  185. Clinger, Peter Deutsch, John Ellis, William Ferguson, Christopher
  186. Hanson, Carl Hoffman, David Kranz, David Littleboy,
  187. Drew McDermott, Nathaniel Mishkin,
  188. Robert Nix, Jim Philbin, John Ramsdell, Christopher Riesbeck, John
  189. Ruttenberg, Olin Shivers, and Steve Wood.
  190.  
  191. Thanks to Judy Martel for her patient proofreading.
  192.  
  193. The NIL project at MIT was the source of many of @Tau[]'s good ideas.
  194. NIL is the work of Richard Bryan, Glenn Burke, George Carrette, Michael
  195. Genereseth, Robert Kerns, Jim Purtilo, John White, and one of the
  196. present authors (JR).
  197.  
  198. Jim Purtilo wrote the integer arithmetic package used in the current
  199. implementation while he was working on the NIL project.
  200.  
  201. We appreciate the patience of our user community, at Yale and elsewhere,
  202. who have had to put up with an incompatible, incomplete, and untuned new
  203. system.
  204.  
  205. Finally, we wish to thank John O'Donnell for helping to shelter us from
  206. the real world, and for having the foresight, or perhaps folly, to
  207. initiate the project in the first place.
  208.  
  209. @dc{ Send $5.00 for your name here. }
  210.  
  211. @dc{ where to put the trademark notices? }
  212.